﻿////////////////////////////////////////////////////////////////////////
//Autor: Gabriel Tame Borao  - gabrieltame@yahoo.es 
//Fecha: 2010/09/15 01:27
//Solucion: GTameReport.sln
//Proyecto: GTameReport
//Fichero: ThreeDPropertiesType.cs
//
//	Copyright (C) 2010  Gabriel Tame Borao (GTB)
//
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
namespace GTameReport
{
    using Rdl;
    using System;
    using System.Collections;

    public class ThreeDPropertiesType
    {
        private bool? _Clustered = null;
        private uint? _DepthRatio = null;
        private ThreeDPropertiesTypeDrawingStyle _DrawingStyle;
        private bool? _Enabled = null;
        private uint? _GapDepth = null;
        private uint? _HeightRatio = null;
        private string _Inclination;
        private uint? _Perspective = null;
        private ThreeDPropertiesTypeProjectionMode _ProjectionMode;
        private string _Rotation;
        private ThreeDPropertiesTypeShading _Shading;
        private uint? _WallThickness = null;

        public Rdl.ThreeDPropertiesType Write()
        {
            Rdl.ThreeDPropertiesType type = new Rdl.ThreeDPropertiesType();
            ArrayList list = new ArrayList();
            ArrayList list2 = new ArrayList();
            if (this._Clustered.HasValue)
            {
                list.Add(this._Clustered);
                list2.Add(ItemsChoiceType26.Clustered);
            }
            if (this._DepthRatio.HasValue)
            {
                list.Add(this._DepthRatio);
                list2.Add(ItemsChoiceType26.DepthRatio);
            }
            list.Add(this._DrawingStyle);
            list2.Add(ItemsChoiceType26.DrawingStyle);
            if (this._Enabled.HasValue)
            {
                list.Add(this._Enabled);
                list2.Add(ItemsChoiceType26.Enabled);
            }
            if (this._GapDepth.HasValue)
            {
                list.Add(this._GapDepth);
                list2.Add(ItemsChoiceType26.GapDepth);
            }
            if (this._HeightRatio.HasValue)
            {
                list.Add(this._HeightRatio);
                list2.Add(ItemsChoiceType26.HeightRatio);
            }
            if (this._Inclination != null)
            {
                list.Add(this._Inclination);
                list2.Add(ItemsChoiceType26.Inclination);
            }
            if (this._Perspective.HasValue)
            {
                list.Add(this._Perspective);
                list2.Add(ItemsChoiceType26.Perspective);
            }
            list.Add(this._ProjectionMode);
            list2.Add(ItemsChoiceType26.ProjectionMode);
            if (this._Rotation != null)
            {
                list.Add(this._Rotation);
                list2.Add(ItemsChoiceType26.Rotation);
            }
            list.Add(this._Shading);
            list2.Add(ItemsChoiceType26.Shading);
            if (this._WallThickness.HasValue)
            {
                list.Add(this._WallThickness);
                list2.Add(ItemsChoiceType26.WallThickness);
            }
            type.Items = list.ToArray();
            type.ItemsElementName = (ItemsChoiceType26[]) list2.ToArray(typeof(ItemsChoiceType26));
            list2 = null;
            list = null;
            return type;
        }

        public bool? Clustered
        {
            get
            {
                return this._Clustered;
            }
            set
            {
                this._Clustered = value;
            }
        }

        public uint? DepthRatio
        {
            get
            {
                return this._DepthRatio;
            }
            set
            {
                this._DepthRatio = value;
            }
        }

        public ThreeDPropertiesTypeDrawingStyle DrawingStyle
        {
            get
            {
                return this._DrawingStyle;
            }
            set
            {
                this._DrawingStyle = value;
            }
        }

        public bool? Enabled
        {
            get
            {
                return this._Enabled;
            }
            set
            {
                this._Enabled = value;
            }
        }

        public uint? GapDepth
        {
            get
            {
                return this._GapDepth;
            }
            set
            {
                this._GapDepth = value;
            }
        }

        public uint? HeightRatio
        {
            get
            {
                return this._HeightRatio;
            }
            set
            {
                this._HeightRatio = value;
            }
        }

        public string Inclination
        {
            get
            {
                return this._Inclination;
            }
            set
            {
                this._Inclination = value;
            }
        }

        public uint? Perspective
        {
            get
            {
                return this._Perspective;
            }
            set
            {
                this._Perspective = value;
            }
        }

        public ThreeDPropertiesTypeProjectionMode ProjectionMode
        {
            get
            {
                return this._ProjectionMode;
            }
            set
            {
                this._ProjectionMode = value;
            }
        }

        public string Rotation
        {
            get
            {
                return this._Rotation;
            }
            set
            {
                this._Rotation = value;
            }
        }

        public ThreeDPropertiesTypeShading Shading
        {
            get
            {
                return this._Shading;
            }
            set
            {
                this._Shading = value;
            }
        }

        public uint? WallThickness
        {
            get
            {
                return this._WallThickness;
            }
            set
            {
                this._WallThickness = value;
            }
        }
    }
}

